﻿/************************************************************************
  Клиентские функции по запросам к серверу
************************************************************************/

// Отправка ajax-запроса к объектной модели пользователя на сервере
$.$ = function(obj, successfunc, paramobj) {
    if (!obj || !obj.ctrlkey) { alert('Не задан объект или ключ контрола!'); return; }
    $.ajax({
        type: 'POST',
        url: 'ExtEasy.ashx',
        cache: false,
        data: (obj),
        success: function(data) { var extresult = $.ProcessResult(data); if (successfunc) successfunc(extresult, paramobj); } 
    })
}

// Обработка результатов ajax-запроса
$.ProcessResult = function(data) {
    var extresult = null;
    eval('extresult=' + data + ';');
    if (!extresult) { alert('Потеряна связь с сервером!'); return; }
    if (extresult.HasErrors) { var err = 'Произошла ошибка: ' + extresult.ErrorMessage; alert(err); }
    else {
        if (extresult.ID) {
            var d = $('#' + extresult.ID);
            if (d) {
                d.html(extresult.HTML).css('display', extresult.HTML == '' ? 'none' : 'inline');
            }
        }
        if (extresult.BackScript) { eval(extresult.BackScript); }
    }
    return extresult;
}

// Показывает затухающее сообщение в нужный див
$.ShowMessage = function(divid, message, color, duration) {
    if (!color) color = 'green';if (!duration) duration = 3000;
    $('#' + divid)
        .css({visibility:'visible'}).css({display:'inline'})
        .css({color : color}).html(message)
        .animate({opacity: 'hide'},{duration : duration});
}

// Постит значения формы по селектору
$.PostForm = function(resultObj, selector, formObj) {
    $(selector, formObj).each(function(i, elem) {
        eval('resultObj.' + $(elem).attr('id') + '=\'' + $(elem).val() + '\';');
    });
    $.$(resultObj);
}  

// Засерить все контролы на панельке
DisablePanel = function (id) {
    $('INPUT,SELECT,BUTTON,TEXTAREA','#'+id).attr('disabled','disabled').attr('readonly','readonly');
    $('[href!=""]','#'+id).unbind()/*.attr('class','')*/.removeAttr('href').removeClass('ExtLink').removeAttr('onclick');
}